Engine speed control systems, commonly known as engine speed governors, are well known in the automotive industry. In one type of engine speed governor, commonly used in passenger automobiles, the position of the throttle pedal roughly corresponds to the engine torque. To maintain constant vehicle speed with such a governor, the throttle position must be modulated in response to variations in road incline/decline to thereby correspondingly increase/decrease engine torque output. On a diesel truck engine, this type of throttle input is known as a "min-max" governor, owing to the functional features of limiting both the minimum and maximum engine speed, but with no regulation of speed between these limits.
Another type of engine speed governor, commonly used in diesel truck engines, is known as an "all-speed" governor, wherein the throttle position is equated to engine speed rather than engine torque. One variety of such an "all-speed" governor is known as an "isochronous" all-speed governor, wherein a constant engine speed is provided for a constant throttle position. With the isochronous governor, a cruise control function is thus provided wherein engine (and vehicle) speed will remain constant, regardless of load, if the throttle is held constant.
Referring to FIG. 1, an example of a known isochronous engine speed control system 10 is shown. A reference speed "REF SPEED", corresponding to a desired engine speed, is typically generated in response to throttle position. REF SPEED is provided to a positive input of a summing node 14. Summing node 14 also has a negative input which receives an ACTUAL SPEED as an output of an engine speed sensor 32 within the internal combustion engine 30. The output of summing node 14 thus provides a speed error signal "e" which corresponds to the difference between REF SPEED and ACTUAL SPEED. Speed error signal e is provided as an input to isochronous engine speed controller 16. The output 26 of controller 16 is then provided to the fueling system 28 to thereby fuel the engine 30 in accordance therewith.
P component 18 of isochronous engine controller 16 provides a "proportional" gain function for the speed error signal e, so that small fuel changes are made for small errors and larger fuel changes are made for larger errors. I component 20 provides an "integral" function for the speed error signal e, so that fuel changes are made slowly (and more smoothly) over time. The speed error correction function provided by engine speed controller 16 is thus not only proportional to the amount of speed error but also to the time that the error is present. Finally, D component 22 provides a "derivative" function for the speed error signal e, so that fuel changes may be accurately anticipated with respect to the direction and rate of change in e. The outputs of P 18, I 20 and D 22 are combined at summing node 24 to provide output fueling signal 26.
It should be pointed out that isochronous engine speed controller 16 is shown, in the example of FIG. 1, as three separate components: P, I and D, to facilitate the description thereof. It is to be understood that in practice, components P, I and D are functionally merged into one component; either as a physical controller 16 or as a software function executable by, for example, a microprocessor. The resulting proportional-integral-derivative (PID) controller 16 is well known in the automotive industry.
Referring now to FIG. 2, the frequency response, or bode plot, of a typical isochronous PID controller 16 is shown. FIG. 2A shows the gain of controller 16 at each frequency. The Magnitude 36 (in dB) of the gain of controller 16 is given by the equation Magnitude=20 * log.sub.10 (g). Similarly, FIG. 2B shows the Phase 38 at each frequency. Generally, negative Phase numbers indicate delay between the speed error signal e and the output signal 26 of controller 16, and positive Phase numbers indicate anticipation by the output signal 26 of the speed error signal e. As is known in the art, more delay (more negative Phase) generally makes a system more difficult to control (ie. more difficult to achieve system stability).
In a bode plot such as that shown in FIG. 2, the Magnitude 36 may be approximated as a set of straight lines and corners. The "poles" and "zeros" of the controller 16 correspond to those frequencies at which the Magnitude 36 has a "corner", where the left-most portion of the Magnitude 36 is considered to be a corner but the right-most portion is not. Generally, a pole occurs at a corner that bends the graph down and a zero occurs at a corner that bends the graph up. From FIG. 2A, controller 16 thus has poles at approximately 0 Hz and 80 Hz, and zeros at approximately 1 Hz and 10 Hz.
Typically, a PID controller is defined as a transfer function having poles and zeros. Using the known z-plane representation of discrete-time systems commonly used with controllers under microprocessor control, such a transfer function is a ratio of polynomials in z where the order of each polynomial is equal to the number of corresponding poles and zeros. The roots of the denominator of such a transfer function then correspond to the poles of the controller while the roots of the numerator correspond to the zeros of the controller. Generally, conversion between the frequency domain and the z domain follows the equation Frequency=1n(z)/(2.pi.T.sub.S) where T.sub.S is the sampling period of the controller. Thus, for a sampling period of approximately 2 milliseconds, the transfer function H.sub.1 of the PID controller example given in FIGS. 1 and 2 may be represented by the equation: EQU H.sub.1 =[4.5(z-0.988)(z-0.882)]/[(z-1)(z-0.366)].
A strictly isochronous all-speed governor, such as system 10, is not normally used for on-highway applications due to drivability problems. Specifically, since small changes in throttle position correspond to large changes in engine torque in such systems, it is difficult to operate a vehicle smoothly using such a governor. For this reason, isochronous governors are typically provided with a so-called "droop" function, where droop can be defined as a governor characteristic that permits the steady state engine speed to decrease slightly as engine load increases. A common measure of droop is scaled in percent and defined by the equation: EQU % Droop=[(nlspeed-flspeed)/flspeed]* 100,
where nlspeed is the no-load (or zero load) engine speed and flspeed is the full-load engine speed. By this measure, a strictly isochronous governor has zero percent droop. Similarly, if droop is increase enough, the governor performs like a min-max governor.
Droop is a steady state requirement, meaning that with a steady load on the engine, the engine speed correspondingly decreases. This implies that the controller 16 must have a small gain at low frequencies to match the desired droop function. As droop is decreased, to operate more like an isochronous engine speed controller, the low frequency gain must thus increase as well. In fact, ideal isochronous operation (zero percent droop), requires the low frequency gain to be infinite.
Referring now to FIG. 3, a prior art modified isochronous engine speed control system 15 is shown which is identical in some respects to the isochronous engine speed control system 10 of FIG. 1. As such, like numbers are used to represent like components. However, engine speed control system 15 includes an additional feedback path between the PID controller 16 output and the REF SPEED input. Specifically, gain block 40 receives the output signal 26 of PID controller 16, multiplies this signal by a gain G.sub.D and subtracts this signal from REF SPEED at summing node 42. Summing node 14 thus receives an altered REF' SPEED signal at its positive input. The operational effect of including gain block 40 is to achieve the goals of providing the engine speed control system 15 with droop capability while maintaining a stable system.
Referring now to FIG. 4, a bode plot of engine speed control system 15 is shown along with that of engine speed control system 10. As shown in FIG. 4A, adding gain block 40 reduces the low frequency gain 44 as desired. Referring to both FIGS. 4A and 4B, however, although system stability is maintained (no sustained oscillation), both high frequency gain 44 and phase 46 are affected by the addition of gain block 40. In particular, the phase 46 is more negative at high frequencies which has the effect of adding more delay to the system, thereby creating stability problems attributable to gain block 40. Thus, as more droop is introduced into system 15, by increasing the gain G.sub.D of gain block 40, the system 15 becomes less stable.
Adding feedback gain block 40 results in the following transfer function H.sub.2 attributable to PID controller 16: EQU H.sub.2 =[4.5(z-0.988) (z-0.882)z]/[(z-0.9987) (z-0.670) (z+0.586)].
Comparison of the poles and zeros in H.sub.2 to the poles and zeros of H.sub.1 indicates the effects of adding gain block 40. First, the pole at z=1 in H.sub.1 has moved slightly to z=0.9987 in H.sub.2, which introduces the increased droop effect. Also, the pole at z=0.366 in H.sub.1 has moved to z=0.670, and is responsible for the loss of phase at high frequencies. Finally, the addition of gain block 40 has introduced another pole and zero in H.sub.2. The pole so introduced at z=-0.586 is responsible for the large gain and phase fluctuations at very high frequencies.
Within system 15, it is apparent that adding gain block 40 introduces more to engine speed control system 15 than droop capability. High frequency variations are also introduced that may require gains internal to the PID controller 16 to be adjusted for different levels of G.sub.D in order to maintain system 15 stability. Moreover, system 15 is limited in the amount of droop that can be obtained. For example, it has been determined through experimentation that one such system 15 becomes unstable for droop levels above approximately 24%. What is therefore needed is a new technique for varying droop in an engine speed control system wherein the droop percentage may be varied without limitation while maintaining system stability.